// $Rev: 130 $

#ifndef FILE_H
#define FILE_H

#include <vector>
#include <string>
#include "fragment.h"

class File {
	public:
		File(std::string md5, std::string name);
		void set_file_size(int size);
		void add_fragment(Fragment *fragment);
		const std::string &get_md5() const;
		const std::string &get_name() const;
		int get_size() const;
		Fragment *get_fragment(int id) const;
		const std::vector<Fragment *> &get_fragments() const;
		~File();
	private:
		std::string md5, name;
		int size;
		std::vector<Fragment *> fragments;
		// No permitimos operadores de copia o asignacion para esta clase.
		File(const File &ic);
		File &operator=(const File &ic);
};

#endif
